/****************************************************************************
 *
 *              APM_emb.h -- APM embedded main file
 *
 *****************************************************************************
 * FileName:        APM_emb.h
 * Processor:       PIC18F
 * Creation date :	2009/11/07
 * Description :	APM embedded main file
 * Author :			Gilles KREBS
 * License :		Creative Commons 3.0 CC-BY-NC-SA
 *****************************************************************************/
/*****************************************************************************
 *	NOTES :
 * 			GK : UART = 9600 bauds
 *****************************************************************************/
 /*****************************************************************************
 * INCLUDES
 *****************************************************************************/
#include "LT08pic.h"
#include "MPPp18.h"

 /*****************************************************************************
 * DEFINES
 *****************************************************************************/
// APM version
#define APM_VERSION 1
#define APM_COMPATIBILITY 0
#define APM_RELEASE 0
 
// RUN LED defines
#define OFF	0
#define ON	1
#define APM_LED_RUN_TOGGLE (APM_LED_RUN ^= 1)

// The ZigBee message type is read in TRIM (Transversal identification management) header
#define APM_MPP_MSG_TYPE	TRIM_MPP_TYPE_APM

 /*****************************************************************************
 * TYPES DEFINITIONS
 *****************************************************************************/
// General ZigBee payload pattern
typedef struct {
BYTE type;
BYTE data_len;
union {
	CHAR asc[TX_BUFFER_SIZE-2];
	} data;
} APM_MPP_MSG;

// Application wide global variable
typedef struct
{
	CHAR ibuf[ TX_BUFFER_SIZE];
	APM_MPP_MSG msg;
} APM_MPP;

// APM configuration
typedef struct
{
	WORD current;
	WORD voltage;
} APM_DATA;

/*****************************************************************************
 * PROTOTYPES
 *****************************************************************************/
VOID remote(APM_MPP *apm_mpp, LT08 *lt08_lcd);
VOID local(APM_MPP *apm_mpp, LT08 *lt08_lcd);
 